package pokerSaloon.model;



public class JeuCartes {
    //le tableau de Cartes
    /**
	 * @uml.property  name="jeu"
	 * @uml.associationEnd  multiplicity="(0 -1)"
	 */
    private Carte[] jeu;
    //le curseur indiquant la dernière carte tiré
    /**
	 * @uml.property  name="curseur"
	 */
    private int curseur=0;
    //le nombre de cartes à tirer au maximum
    /**
	 * @uml.property  name="nbCartes"
	 */
    int nbCartes=25;

    //le nombre aléatoire
    /**
	 * @uml.property  name="random"
	 */
    private int random;

    /**
     * Constructeur d'un jeu de cartes
     */
    public JeuCartes () {
        //tableau de 25 cartes
        jeu=new Carte [nbCartes];
        int i,j;
        //une carte temporaire
        Carte carteTemp;
        //on initialise la premiere carte
        random = (int)(Math.random() * (52));
        jeu[0]=new Carte(random);
        i=1;

        do{
          //tirage aléatoire
          random = (int)(Math.random() * (52));
          //la carte temporaire reçoit la carte crée aléatoirement
          carteTemp=new Carte(random);

          //on regarde si la Carte qui veins d'etre tiré a deja été tiré
          for(j=0;j<i && !(jeu[j].equals(carteTemp));j++);
          //si la carte temporaire n'a été tiré qu'une fois
          if(j==i){
              //on la met dans le jeu de cartes
              jeu[i]=carteTemp;
              i++;
          }
        }while(i<jeu.length);   
    }

    /**
     * accesseur à une carte du jeu de carte
     * @param i l'indice de la carte dans le jeu de carte
     * @return la carte présente à l'indice mentionné
     */
    public Carte getCarte(int i){
        return jeu[i];
    }

    /**
     * methode qui distribue une carte
     */
    public Carte donnerCarte(){
           //on increment le curseur à la carte suivante
           curseur++;
           //on donne la carte qui est à l'emplacement curseur
           return getCarte(curseur-1);

    }

}

